package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/**
 * 通过反射机制获取Method对应方法的信息
 */
public class ReflectDemo6 {
    public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
        Class cls = Class.forName("reflect.Person");
        Method method = cls.getMethod("say", String.class,int.class);

        String name = method.getName();
        System.out.println("方法名"+name);
        Class returnType =  method.getReturnType();
        System.out.println("方法的返回值类型："+returnType);
        int count = method.getParameterCount();
        System.out.println("方法的个数："+count);
        Class[] types= method.getParameterTypes();
        for(Class type : types){
            System.out.println(type);
        }

        int modifiers =method.getModifiers();

        switch (modifiers){
            case Modifier.PUBLIC:
                System.out.println("是一个公开方法");
                break;
            case Modifier.PRIVATE:
                System.out.println("是一个私有方法");
                break;
            case Modifier.PROTECTED:
                System.out.println("是一个受保护方法");
                break;
        }

    }
}
